// 需求：逐个读取resourses文件夹下的三个文件，再将其内容拼接输出
// 引入fs模块
const fs = require("fs");

// 产生回调地狱，会出现命名冲突，代码缩进问题
fs.readFile("./resources/为学.md", (err, data1) => {
  if (err) throw err;
  fs.readFile("./resources/插秧诗.md", (err, data2) => {
    if (err) throw err;
    fs.readFile("./resources/观书有感.md", (err, data3) => {
      let result = data1 + "\r\n" + data2 + "\r\n" + data3; // 字符串拼接会自动将buffer转换为字符串
      console.log(result);
    });
  });
});

// 使用 Promise 实现
const p = new Promise((resolve, reject) => {
  // 读取第一个文件内容
  fs.readFile("./resources/为学.md", (err, data) => {
    if (err) reject(err);
    resolve(data);
  });
});
p.then((value) => {
  // console.log(value.toString());
  // 返回一个Promise对象
  return new Promise((resolve, reject) => {
    // 读取第二个文件内容
    fs.readFile("./resources/插秧诗.md", (err, data) => {
      if (err) reject(err);
      // 将读取的内容作为promise的返回值传递给then方法
      resolve(value + "\r\n" + data);
    });
  });
})
  .then((value) => {
    // console.log(value);
    // 读取第三个文件内容
    return new Promise((resolve, reject) => {
      fs.readFile("./resources/观书有感.md", (err, data) => {
        if (err) reject(err);
        resolve(value + "\r\n" + data);
      });
    });
  })
  .then((value) => {
    console.log(value);
  });
